// ============================================================================
//
// LCP-net framework by Pierre CHATEL chatelp@gmail.com
// Distributed under GPLv3
// Copyright (C) THALES Land & Joint Systems, 2008, 2009. All rights reserved
//
// ============================================================================

/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package com.thalesgroup.preferenceFramework.models.LCPnet.fragments.util;

import com.thalesgroup.preferenceFramework.models.Arc;

import com.thalesgroup.preferenceFramework.models.LCPnet.CIArc;
import com.thalesgroup.preferenceFramework.models.LCPnet.CIT;
import com.thalesgroup.preferenceFramework.models.LCPnet.CITLine;
import com.thalesgroup.preferenceFramework.models.LCPnet.CLPT;
import com.thalesgroup.preferenceFramework.models.LCPnet.CLPTLine;
import com.thalesgroup.preferenceFramework.models.LCPnet.LCPnet;
import com.thalesgroup.preferenceFramework.models.LCPnet.LNode;
import com.thalesgroup.preferenceFramework.models.LCPnet.LNodeValue;
import com.thalesgroup.preferenceFramework.models.LCPnet.LNodeValueUtility;

import com.thalesgroup.preferenceFramework.models.LCPnet.LinguisticDomain;
import com.thalesgroup.preferenceFramework.models.LCPnet.LinguisticSubset;
import com.thalesgroup.preferenceFramework.models.LCPnet.fragments.*;

import com.thalesgroup.preferenceFramework.models.Namable;
import com.thalesgroup.preferenceFramework.models.Node;
import com.thalesgroup.preferenceFramework.models.NodeValue;
import com.thalesgroup.preferenceFramework.models.PreferenceNetwork;

import java.util.List;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Switch</b> for the model's inheritance hierarchy.
 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
 * to invoke the <code>caseXXX</code> method for each class of the model,
 * starting with the actual class of the object
 * and proceeding up the inheritance hierarchy
 * until a non-null result is returned,
 * which is the result of the switch.
 * <!-- end-user-doc -->
 * @see com.thalesgroup.preferenceFramework.models.LCPnet.fragments.FragmentsPackage
 * @generated
 */
public class FragmentsSwitch<T> {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static FragmentsPackage modelPackage;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public FragmentsSwitch() {
		if (modelPackage == null) {
			modelPackage = FragmentsPackage.eINSTANCE;
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	public T doSwitch(EObject theEObject) {
		return doSwitch(theEObject.eClass(), theEObject);
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T doSwitch(EClass theEClass, EObject theEObject) {
		if (theEClass.eContainer() == modelPackage) {
			return doSwitch(theEClass.getClassifierID(), theEObject);
		}
		else {
			List<EClass> eSuperTypes = theEClass.getESuperTypes();
			return
				eSuperTypes.isEmpty() ?
					defaultCase(theEObject) :
					doSwitch(eSuperTypes.get(0), theEObject);
		}
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	protected T doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
			case FragmentsPackage.FRAGMENT: {
				Fragment fragment = (Fragment)theEObject;
				T result = caseFragment(fragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.LC_PNET_FRAGMENT: {
				LCPnetFragment lcPnetFragment = (LCPnetFragment)theEObject;
				T result = caseLCPnetFragment(lcPnetFragment);
				if (result == null) result = caseLCPnet(lcPnetFragment);
				if (result == null) result = caseFragment(lcPnetFragment);
				if (result == null) result = casePreferenceNetwork(lcPnetFragment);
				if (result == null) result = caseNamable(lcPnetFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.LNODE_FRAGMENT: {
				LNodeFragment lNodeFragment = (LNodeFragment)theEObject;
				T result = caseLNodeFragment(lNodeFragment);
				if (result == null) result = caseLNode(lNodeFragment);
				if (result == null) result = caseFragment(lNodeFragment);
				if (result == null) result = caseNode(lNodeFragment);
				if (result == null) result = caseNamable(lNodeFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.CLPT_FRAGMENT: {
				CLPTFragment clptFragment = (CLPTFragment)theEObject;
				T result = caseCLPTFragment(clptFragment);
				if (result == null) result = caseCLPT(clptFragment);
				if (result == null) result = caseFragment(clptFragment);
				if (result == null) result = caseNamable(clptFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.CLPT_LINE_FRAGMENT: {
				CLPTLineFragment clptLineFragment = (CLPTLineFragment)theEObject;
				T result = caseCLPTLineFragment(clptLineFragment);
				if (result == null) result = caseCLPTLine(clptLineFragment);
				if (result == null) result = caseFragment(clptLineFragment);
				if (result == null) result = caseNamable(clptLineFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.LNODE_VALUE_FRAGMENT: {
				LNodeValueFragment lNodeValueFragment = (LNodeValueFragment)theEObject;
				T result = caseLNodeValueFragment(lNodeValueFragment);
				if (result == null) result = caseLNodeValue(lNodeValueFragment);
				if (result == null) result = caseFragment(lNodeValueFragment);
				if (result == null) result = caseNodeValue(lNodeValueFragment);
				if (result == null) result = caseNamable(lNodeValueFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.LNODE_VALUE_UTILITY_FRAGMENT: {
				LNodeValueUtilityFragment lNodeValueUtilityFragment = (LNodeValueUtilityFragment)theEObject;
				T result = caseLNodeValueUtilityFragment(lNodeValueUtilityFragment);
				if (result == null) result = caseLNodeValueUtility(lNodeValueUtilityFragment);
				if (result == null) result = caseFragment(lNodeValueUtilityFragment);
				if (result == null) result = caseNamable(lNodeValueUtilityFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.ARC_FRAGMENT: {
				ArcFragment arcFragment = (ArcFragment)theEObject;
				T result = caseArcFragment(arcFragment);
				if (result == null) result = caseArc(arcFragment);
				if (result == null) result = caseFragment(arcFragment);
				if (result == null) result = caseNamable(arcFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.CI_ARC_FRAGMENT: {
				CIArcFragment ciArcFragment = (CIArcFragment)theEObject;
				T result = caseCIArcFragment(ciArcFragment);
				if (result == null) result = caseCIArc(ciArcFragment);
				if (result == null) result = caseFragment(ciArcFragment);
				if (result == null) result = caseArc(ciArcFragment);
				if (result == null) result = caseNamable(ciArcFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.CIT_FRAGMENT: {
				CITFragment citFragment = (CITFragment)theEObject;
				T result = caseCITFragment(citFragment);
				if (result == null) result = caseCIT(citFragment);
				if (result == null) result = caseFragment(citFragment);
				if (result == null) result = caseNamable(citFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.CIT_LINE_FRAGMENT: {
				CITLineFragment citLineFragment = (CITLineFragment)theEObject;
				T result = caseCITLineFragment(citLineFragment);
				if (result == null) result = caseCITLine(citLineFragment);
				if (result == null) result = caseFragment(citLineFragment);
				if (result == null) result = caseNamable(citLineFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.LINGUISTIC_DOMAIN_FRAGMENT: {
				LinguisticDomainFragment linguisticDomainFragment = (LinguisticDomainFragment)theEObject;
				T result = caseLinguisticDomainFragment(linguisticDomainFragment);
				if (result == null) result = caseLinguisticDomain(linguisticDomainFragment);
				if (result == null) result = caseFragment(linguisticDomainFragment);
				if (result == null) result = caseNamable(linguisticDomainFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case FragmentsPackage.LINGUISTIC_SUBSET_FRAGMENT: {
				LinguisticSubsetFragment linguisticSubsetFragment = (LinguisticSubsetFragment)theEObject;
				T result = caseLinguisticSubsetFragment(linguisticSubsetFragment);
				if (result == null) result = caseLinguisticSubset(linguisticSubsetFragment);
				if (result == null) result = caseFragment(linguisticSubsetFragment);
				if (result == null) result = caseNamable(linguisticSubsetFragment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFragment(Fragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LC Pnet Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LC Pnet Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLCPnetFragment(LCPnetFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LNode Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LNode Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLNodeFragment(LNodeFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CLPT Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CLPT Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCLPTFragment(CLPTFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CLPT Line Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CLPT Line Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCLPTLineFragment(CLPTLineFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LNode Value Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LNode Value Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLNodeValueFragment(LNodeValueFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LNode Value Utility Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LNode Value Utility Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLNodeValueUtilityFragment(LNodeValueUtilityFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Arc Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Arc Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseArcFragment(ArcFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CI Arc Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CI Arc Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCIArcFragment(CIArcFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CIT Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CIT Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCITFragment(CITFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CIT Line Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CIT Line Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCITLineFragment(CITLineFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Linguistic Domain Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Linguistic Domain Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLinguisticDomainFragment(LinguisticDomainFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Linguistic Subset Fragment</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Linguistic Subset Fragment</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLinguisticSubsetFragment(LinguisticSubsetFragment object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Namable</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Namable</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseNamable(Namable object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Preference Network</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Preference Network</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casePreferenceNetwork(PreferenceNetwork object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LC Pnet</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LC Pnet</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLCPnet(LCPnet object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Node</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Node</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseNode(Node object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LNode</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LNode</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLNode(LNode object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CLPT</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CLPT</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCLPT(CLPT object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CLPT Line</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CLPT Line</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCLPTLine(CLPTLine object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Node Value</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Node Value</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseNodeValue(NodeValue object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LNode Value</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LNode Value</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLNodeValue(LNodeValue object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>LNode Value Utility</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>LNode Value Utility</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLNodeValueUtility(LNodeValueUtility object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Arc</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Arc</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseArc(Arc object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CI Arc</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CI Arc</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCIArc(CIArc object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CIT</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CIT</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCIT(CIT object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>CIT Line</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>CIT Line</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseCITLine(CITLine object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Linguistic Domain</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Linguistic Domain</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLinguisticDomain(LinguisticDomain object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Linguistic Subset</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Linguistic Subset</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLinguisticSubset(LinguisticSubset object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch, but this is the last case anyway.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
	 * @generated
	 */
	public T defaultCase(EObject object) {
		return null;
	}

} //FragmentsSwitch
